Some of you looking for how to activate treeview metadata navigation using CSOM.
At the moment i don’t see this in the api, maybe it comes in the next CUs. But i found following working around.
The metadata navigation settings are stored in the rootfolder of the document as property bag key “client_MOSS_MetadataNavigationSettings”.
Prerequisites: In order to activate the navigation you need include a metadata field in the document lib and “Meteadata navigation and Filtering” feature is activated in the site.
In your CSOM code using the following function to activate the treeview.
private static void AddMetadataNavigationToDocLib(ClientContext ctx, List docLib) { var rootWeb = ctx.Site.RootWeb; ctx.Load(rootWeb, p => p.AvailableFields); ctx.Load(docLib, p => p.RootFolder, p => p.RootFolder.Properties); ctx.ExecuteQuery(); if (rootWeb.AvailableFields.Any(p => p.InternalName.Equals(Common.Constants.TagsFieldName))) { var field = rootWeb.Fields.GetByInternalNameOrTitle(Common.Constants.TagsFieldName); ctx.Load(field, p => p.Id, p => p.InternalName, p => p.TypeAsString); ctx.ExecuteQuery(); var sb = new StringBuilder(); sb.Append("<MetadataNavigationSettings SchemaVersion='1' IsEnabled='True' AutoIndex='True'>"); sb.Append("<NavigationHierarchies><FolderHierarchy HideFoldersNode='False' />"); sb.AppendFormat("<MetadataField FieldID='{0}' FieldType='{1}' CachedName='{2}' CachedDisplayName='{3}' />", field.Id, field.TypeAsString, field.InternalName, field.InternalName); sb.Append("</NavigationHierarchies><KeyFilters /></MetadataNavigationSettings>"); docLib.RootFolder.Properties["client_MOSS_MetadataNavigationSettings"] = sb.ToString(); docLib.RootFolder.Update(); docLib.Update(); ctx.ExecuteQuery(); } }